TForm.Create
Otázka od: mstevlik@gamo.sk
2. 4. 2004 13:13
Hi all,
Chcem sa opytat, ako mam urobit constructor Create v mojom potomkovi
TFormu, tak ze tam chcem doplnit dalsi parameter
Priklad:
TfrmAbstract = class(TForm)
public
constructor Create(AOwner: TComponent); override;
end;
TfrmStatistika = class(TfrmAbstract)
public
constructor Create(AOwner: TComponent; ibTyp: Boolean); ...........
end;
Cim mam nahradit tie bodky?
Skusal som tam dat reintroduce
Ale ked som potom zavolal lrFrm := TfrmStatistika.Create tak sa mi volal
constructor TfrmAbstract
Ide mi o to ze chcem nacisto nahradit constructor aby bolo povinne zadat i
ten druhy parameter
Viete mi niekto poradit?
Stevlik Marian
ISYS programator
GAMO a.s.
Kyjevske nam. 6
974 04 Banska Bystrica
mail: mstevlik@gamo.sk
tel: +421 48 4137935, 4372111
ip-tel: 421 48 4372098
mobil: +412 905 462010
ICQ: 34893645
Odpovedá: Petr Brant
2. 4. 2004 13:34
Potomka TForm jsem nedelal, ale resim takovou situaci takto:
constructor TNewMsg.Create(MSgTableProps: TMSgTableProps);
begin
inherited Create(nil); <--------- volani zdedeneho konstruktoru, misto nil
muzes dat Owner, pokud je to zapotrebi
FMSgTableProps:= MSgTableProps;
end;
RNDr. Petr Brant [brant@dcomm.cz]
http://web.redbox.cz/petr.brant
Chcem sa opytat, ako mam urobit constructor Create v mojom potomkovi
TFormu, tak ze tam chcem doplnit dalsi parameter
Priklad:
TfrmAbstract = class(TForm)
public
constructor Create(AOwner: TComponent); override;
end;
TfrmStatistika = class(TfrmAbstract)
public
constructor Create(AOwner: TComponent; ibTyp: Boolean);
...........
end;
Odpovedá: Petr Daricek
2. 4. 2004 14:16
Ahoj,
co takhle?
Petr Daricek
TAbstractForm=class(TForm)
public
constructor Create(AOwner: TComponent); override;
End;
TConcreteForm=class(TAbstractForm)
public
constructor Create(AOwner:TComponent;Parametr:Integer);
End;
implementation
{ TAbstractForm }
constructor TAbstractForm.Create(AOwner: TComponent);
begin
inherited;
end;
{ TConcreteForm }
constructor TConcreteForm.Create(AOwner: TComponent; Parametr: Integer);
begin
inherited Create(AOwner);
end;
Odpovedá: mstevlik@gamo.sk
2. 4. 2004 14:36
> Ahoj,
> co takhle?
> Petr Daricek
>
>
> TAbstractForm=class(TForm)
> public
> constructor Create(AOwner: TComponent); override;
> End;
>
> TConcreteForm=class(TAbstractForm)
> public
> constructor Create(AOwner:TComponent;Parametr:Integer);
> End;
>
> implementation
>
> { TAbstractForm }
>
> constructor TAbstractForm.Create(AOwner: TComponent);
> begin
> inherited;
> end;
>
> { TConcreteForm }
>
> constructor TConcreteForm.Create(AOwner: TComponent; Parametr: Integer);
> begin
> inherited Create(AOwner);
> end;
A ostane mi ten constructor toho TConcreteFormu stale virtualny?
Budem moct v nejakom potomkovy TConcreteFormu napisat constructor
Create(AOwner:TComponent;Parametr:Integer); override; ?
Stevlik Marian
ISYS programator
GAMO a.s.
Kyjevske nam. 6
974 04 Banska Bystrica
mail: mstevlik@gamo.sk
tel: +421 48 4137935, 4372111
ip-tel: 421 48 4372098
mobil: +412 905 462010
ICQ: 34893645
Odpovedá: Radim Kunz
2. 4. 2004 14:55
mstevlik@gamo.sk napsal(a):
>>Ahoj,
>> co takhle?
>> Petr Daricek
>>
>>
>>TAbstractForm=class(TForm)
>>public
>> constructor Create(AOwner: TComponent); override;
>>End;
>>
>>TConcreteForm=class(TAbstractForm)
>>public
>> constructor Create(AOwner:TComponent;Parametr:Integer);
>>End;
>>
>>
>>
>>
...
>A ostane mi ten constructor toho TConcreteFormu stale virtualny?
>Budem moct v nejakom potomkovy TConcreteFormu napisat constructor
>Create(AOwner:TComponent;Parametr:Integer); override; ?
>
>Stevlik Marian
>ISYS programator
>
>
>
Samozrejme nezustane, musis ho virtualnim udelat
TConcreteForm=class(TAbstractForm)
public
constructor Create(AOwner:TComponent;Parametr:Integer); virtual;
End;
Ale bude ti to k necemu?
Radim